# coding:utf-8
# 王一舟
# globalContext.py


#全局变量 - 字典格式存储
#内置属性 - 外部不可修改
#提供对应的方法:可以对这个类属性字典进行修改/增加/获取/显示
class g_Context(object): #类继承默认object

    _dict = {} #定义一个私有属性的空字典(全局变量),外部不可修改

    # 提供对应的方法:可以对这个类属性字典进行修改/增加/显示
    #TODO 1 :通过key 和 value 添加字典的内容
    def set_dict(self,key,value):
        self._dict[key]=value

    #TODO 2 :通过key获取数据
    def get_dict(self,key):
        if key in self._dict.keys(): #判断传入的key是否存在于全局变量中
            print(self._dict.get(key))
            return self._dict.get(key,"输入的key不在全局变量中")
            #dict.get(key) 和 dict[key] 都是字典的取值方法,区别在于如果key不在字典中,后者dict[key]方法会报错 KeyError:
            #所以最好用dict.get(key,"自定义提示无该key的提示") 的方式,这里用了条件判断,上面的提示文字多此一举,仅做知识备注
            #dict.get()的第二个参数为可选参数，当key不存在时返回的默认值。如果不提供，则返回None。
        else:
            print("输入的key不在全局变量中")


    #TODO 3 :通过字典添加数据(把一个字典中的内容追加到另一个字典中)
    def update_dict(self,dic:dict):
        if  isinstance(dic,dict) == True:
            self._dict.update(dic)
        else:
                print("需要传入一个字典")

    #TODO 4 :显示全局变量的内容
    def show_dict(self):
        return self._dict

    #TODO 5 :考虑到全局配置变量的维护
            #1 config.yaml / config.xlsx-- 用来定义配置的变量文件
            #2 这个文件中的配置变量要写到全局变量g_Context中
            #3 变量的渲染,用例当中对应的数据渲染成g_Context对应的数据


# if __name__ == '__main__':
#